Some companies use directed graphs to model information technology (IT) infrastructures that are important to the company. As a company gets larger, the company's IT infrastructure may also expand, making a graph modeling the infrastructure more difficult to search. For example, a network administrator may desire to know which of their company's web applications interact with databases. For a small infrastructure, it may be possible for the administrator to recite the list from memory. However, for companies spanning multiple cities, states, and even countries, it may be next to impossible for a person to manually keep track of the entire list of applications, let alone quickly determine which ones interact with databases. Thus, some companies maintain and/or access IT infrastructure relationship data by running search queries over a graph model of the IT infrastructure.
Some conventional graph searching techniques may use heuristics to determine how to most efficiently run a topological search. For example, some techniques include analyzing the ratio of nodes in the graph to the number of edges in the graph to determine whether a topology traversal or a database query is an efficient first step in returning a list of sub-graphs that match a search query. Other techniques may look at information associated with individual nodes and/or edges specifically. However, it may be difficult for heuristics based approaches to select efficient engines for searching different graphs using different queries.